import path from 'path';
import react from '@vitejs/plugin-react';
import { defineConfig } from 'vite';
import VitePluginImp from 'vite-plugin-imp';
import cleanPlugin from 'vite-plugin-clean';
// import compression from 'vite-plugin-compression';

// import mkcert from 'vite-plugin-mkcert';

// https://vitejs.dev/config/
export default defineConfig(({ mode, command }) => {
  // const env = loadEnv(mode, process.cwd(), '');

  const plugins = [
    react(),
    cleanPlugin({
      targets: ['../backend/dist/'], // 要清理的目录
      hook: 'buildStart' // 在构建开始时执行清理操作
    }),
    // compression({
    //   // 生成压缩文件的扩展名，这里使用 gzip 压缩
    //   ext: '.gz',
    //   // 是否删除原始文件，设置为 false 保留原始文件
    //   deleteOriginFile: false,
    //   // 仅对大于该字节数的文件进行压缩，这里设置为 10KB
    //   threshold: 10240,
    //   // 压缩算法，使用 gzip
    //   algorithm: 'gzip',
    //   // 压缩级别，取值范围 1 - 9，值越大压缩率越高，速度越慢
    //   level: 5
    // })
  ];

  return {
    server: {
      // 指定dev sever的端口号，默认为5173
      port: 4000,
      // 自动打开浏览器运行以下页面
      open: '/',
      // host: env.HOST_URL,
      proxy: {
        '/api': {
          target: 'http://localhost:5000/', // 目标服务器的地址
          changeOrigin: true, // 是否改变源地址
          // eslint-disable-next-line @typescript-eslint/no-shadow
          //rewrite: (path) => path.replace(/^\/api/, ''), // 重写路径
        },
      },
    },
    build: {
      sourcemap: true,
      outDir: '../backend/dist/',
      // 打包时去除 console 和 debugger
      terserOptions: {
        compress: {
          drop_console: true,
          drop_debugger: true
        }
      },
    },
    resolve: {
      alias: {
        '@': path.resolve(__dirname, 'src'),
      },
      extensions: ['.js', '.ts', '.jsx', '.tsx', '.json', '.scss', '.css'],
    },
    plugins,
  };
});
